--- %%NOBANNER%% -->
![]() | ![]() |
/*-------------------<-- Start of Description-->---------------------\ | Delete a macro function, if exists; | |---------------------<-- End of Description-->----------------------| |--------------------------------------------------------------------| |------------<-- Start of Files or Arguments Needed-->---------------| | Argument: | | macrofunction: the names of functions to be deleted, separated | | by an empty space or a comma; | |---------------<-- End of Files Arguments Needed-->-----------------| |--------------------------------------------------------------------| |------------------<-- Start of Files Created-->---------------------| | Example: %_delmfun_(prt,nobs); | | %_delmfun_(%nrstr(%prt)); | \-------------------<-- End of Files Created-->---------------------*/ %macro _delmfun_ /parmbuff; /*--------------------------------------------\ | Author: Duo Zhou; | | Created: 9-28-2001 9:12pm; | | Modified: 1-15-2002 9:52pm; | | Purpose: Delete a macro function; | \--------------------------------------------*/ %local _nmacros_ imacro; %let _nmacros_=0; %do %while(%length(%nrbquote(%qscan(%quote(&syspbuff), %eval(&_nmacros_+1), %str( (),))))); %let _nmacros_=%eval(&_nmacros_+1); %let macroname&_nmacros_=%qscan(%quote(&syspbuff), &_nmacros_, %str( (),)); %end; %do imacro=1 %to &_nmacros_; %if (%length(&¯oname&imacro)>0) %then %do; %if (%sysfunc (cexist(WORK.SASMACR.&¯oname&imacro...MACRO))) %then %do; proc catalog cat=WORK.SASMACR; delete &¯oname&imacro / et=macro; quit; %put ==> Alert! Deleting macro function %nrstr(%%)&¯oname&imacro from your system.; %end; %end; %end; %mend _delmfun_;